IntellijでGit Submoduleを使ってみる
はじめに
データアナリティクス事業本部のkobayashiです。
今進めている案件でたまたまGitのSubmoduleを使う機会があり、自分のメインのIDEであるIntellijでどのように操作すればいいかを調べたので簡単にまとめます。
リモート Git リポジトリと同期する (フェッチ、プル、更新) | IntelliJ IDEA
Gitのサブモジュール
Gitのサブモジュールを使うことである1つのリポジトリ内に別のリポジトリを追加するすることができます。これによりメインのプロジェクトで行っている開発で別のプロジェクトをライブラリとして使う場合などに有効な機能になります。
コミットログをそれぞれのプロジェクトで管理できるので便利です。
IntellijでGit Submoduleを扱ってみる
ではその機能をIntellijで使って見たいと思います。
GitHubに最適なリポジトリがあったので以下をサンプルプロジェクトとして扱ってみます。
- GitHub - githubtraining/example-submodule: This repository contains several commits of a single project file as a simple example used in conjunction with submodules.
- GitHub - githubtraining/example-dependency: A repo that is a submodule with a few commits and release tags
上記を取り込んで以下のディレクトリ構成を作ってみたいと思います。
git_submodule_sample/ └── example-submodule <-----メインプロジェクト ├── README.md ├── app.js ├── example-dependency <-----サブモジュール │ ├── README.md │ ├── css │ │ └── default.css │ ├── index.html │ └── js ├── file1.md └── file2.md
手順1)Intellijで空のプロジェクトを作成し、Terminalを開いてメインのリポジトリをGitHubからCloneする
git clone https://github.com/githubtraining/example-submodule.git
手順2)同じくTerminalでSubmoduleを追加する。
git submodule add https://github.com/githubtraining/example-dependency.git
この時点でコミットログを確認するとメインのプロジェクトだけしか出てこないのでIntellijのVersion Controlにでサブモジュールのプロジェクトを追加します。
手順3)Preferences > Version Control
でサブモジュールのディレクトリを追加する。
ここまでの操作でIntellijでサブモジュールが認識された状態となりました。Intellijでコミットログを確認すると以下の様にメインプロジェクトとサブモジュールのコミットログが非常にわかりやすく表示されています。
この状態になればリモート Git リポジトリと同期する (フェッチ、プル、更新) | IntelliJ IDEA にあるようにサブモジュール参照がルートリポジトリで変更された場合、または新しいサブモジュールが追加された場合に自動的に更新されるようになります。
まとめ
IntellijでGit Submoduleを取り扱う方法を簡単にまとめました。開発規模が大きくなってくるとプロジェクト内に別のプロジェクトをライブラリとして使う場面もあるかと思います。その際はIntellijで上記の設定を行えば非常に便利です。